fix: 28589 resolve the ledger monad swap issue. #29091
Conversation
…nd update dependencies - Introduced a new preview build configuration for `@metamask/eth-ledger-bridge-keyring` with version `12.0.1-7275dbc`. - Updated `yarn.lock` to include new versions for several dependencies, including `@ledgerhq/devices`, `@ledgerhq/errors`, and `@ledgerhq/hw-transport`, ensuring compatibility and improved functionality. - Adjusted the versioning for `@metamask/keyring-api` and `@metamask/keyring-sdk` to their latest versions, enhancing the overall performance and stability of the application.
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
|
@copilot resolve the merge conflicts in this pull request |
…-issue # Conflicts: # yarn.lock Co-authored-by: dawnseeker8 <7315988+dawnseeker8@users.noreply.github.com>
Resolved. Merged |
|
@copilot resolve the merge conflicts in this pull request |
…-issue # Conflicts: # yarn.lock Co-authored-by: dawnseeker8 <7315988+dawnseeker8@users.noreply.github.com>
Resolved again. Merged the latest |
|
@copilot resolve the merge conflicts in this pull request |
…-issue # Conflicts: # .github/workflows/runway-ota-build-core.yml # app/component-library/components-temp/Contracts/ContractBox/ContractBox.test.tsx # app/component-library/components-temp/Contracts/ContractBoxBase/ContractBoxBase.test.tsx # app/components/Approvals/ApprovalModal/ApprovalModal.test.tsx # app/components/Base/AnimatedFox/index.test.tsx # app/components/Nav/Main/__snapshots__/index.test.tsx.snap # app/components/UI/AccountFromToInfoCard/__snapshots__/AccountFromToInfoCard.test.tsx.snap # app/components/UI/AccountNetworkIndicator/AccountNetworkIndicator.test.tsx # app/components/UI/ActionModal/__snapshots__/index.test.tsx.snap # app/components/UI/ActionModal/index.test.tsx # app/components/UI/ActionView/index.test.tsx # app/components/UI/AnimatedSpinner/index.test.tsx # app/components/UI/AnimatedTransactionModal/index.test.tsx # app/components/UI/AssetElement/__snapshots__/index.test.tsx.snap # app/components/UI/AssetIcon/index.test.tsx # app/components/UI/AssetList/index.test.tsx # app/components/UI/BasicFunctionality/BasicFunctionality.test.js # app/components/UI/BlockingActionModal/index.test.tsx # app/components/UI/Button/index.test.tsx # app/components/UI/Confetti/index.test.tsx # app/components/UI/CustomAlert/index.test.tsx # app/components/UI/FadeOutOverlay/index.test.tsx # app/components/UI/FadeView/index.test.tsx # app/components/UI/FoxScreen/index.test.tsx # app/components/UI/GenericButton/__snapshots__/index.test.tsx.snap # app/components/UI/GenericButton/index.test.tsx # app/components/UI/GlobalAlert/index.test.tsx # app/components/UI/HintModal/__snapshots__/index.test.tsx.snap # app/components/UI/HintModal/index.test.tsx # app/components/UI/ImageIcon/index.test.tsx # app/components/UI/LoginOptionsSwitch/LoginOptionsSwitch.test.tsx # app/components/UI/LoginOptionsSwitch/__snapshots__/LoginOptionsSwitch.test.tsx.snap # app/components/UI/ModalNavbarTitle/index.test.tsx # app/components/UI/NavbarBrowserTitle/index.test.tsx # app/components/UI/NavbarTitle/__snapshots__/index.test.js.snap # app/components/UI/NetworkMainAssetLogo/index.test.tsx # app/components/UI/OnboardingScreenWithBg/index.test.tsx # app/components/UI/SettingsNotification/__snapshots__/index.test.tsx.snap # app/components/UI/StyledButton/__snapshots__/index.test.tsx.snap # app/components/UI/Tabs/TabCountIcon/__snapshots__/index.test.tsx.snap # app/components/UI/TokenImage/__snapshots__/index.test.tsx.snap # app/components/UI/TokenImage/index.test.tsx # app/components/Views/AccountConnect/AccountConnectMultiSelector/__snapshots__/AccountConnectMultiSelector.test.tsx.snap # app/components/Views/AccountConnect/__snapshots__/AccountConnect.test.tsx.snap # app/components/Views/AccountPermissions/AccountPermissionsConfirmRevokeAll/__snapshots__/AccountPermissionsConfirmRevokeAll.test.tsx.snap # app/components/Views/AccountPermissions/ConnectionDetails/__snapshots__/ConnectionDetails.test.tsx.snap # app/components/Views/AccountPermissions/NetworkPermissionsConnected/__snapshots__/NetworkPermissionsConnected.test.tsx.snap # app/components/Views/AccountPermissions/PermittedNetworksInfoSheet/__snapshots__/PermittedNetworksInfoSheet.test.tsx.snap # app/components/Views/AccountPermissions/__snapshots__/AccountPermissions.test.tsx.snap # app/components/Views/AccountSelector/AccountSelector.styles.ts # app/components/Views/AccountStatus/__snapshots__/index.test.tsx.snap # app/components/Views/ActivityView/__snapshots__/index.test.tsx.snap # app/components/Views/AddAccountActions/__snapshots__/AddAccountActions.test.tsx.snap # app/components/Views/AddBookmark/__snapshots__/index.test.tsx.snap # app/components/Views/AddressSelector/__snapshots__/AddressSelector.test.tsx.snap # app/components/Views/AesCryptoTestForm/__snapshots__/AesCryptoTestForm.test.tsx.snap # app/components/Views/AesCryptoTestForm/__snapshots__/Clipboard.test.tsx.snap # app/components/Views/AesCryptoTestForm/__snapshots__/Form.test.tsx.snap # app/components/Views/Browser/__snapshots__/Browser.rendering.test.tsx.snap # app/components/Views/Browser/__snapshots__/Browser.tabs.test.tsx.snap # app/components/Views/Browser/__snapshots__/MaxBrowserTabsModal.test.tsx.snap # app/components/Views/BrowserTab/__snapshots__/index.test.tsx.snap # app/components/Views/BrowserTab/components/IpfsBanner/__snapshots__/index.test.tsx.snap # app/components/Views/BrowserTab/components/Options/__snapshots__/index.test.tsx.snap # app/components/Views/BrowserTab/components/PhishingModal/__snapshots__/index.test.tsx.snap # app/components/Views/ChangeInSimulationModal/__snapshots__/ChangeInSimulationModal.test.tsx.snap # app/components/Views/ConnectQRHardware/__snapshots__/index.test.tsx.snap # app/components/Views/DataCollectionModal/__snapshots__/index.test.tsx.snap # app/components/Views/DiscoveryTab/__snapshots__/DiscoveryTab.test.tsx.snap # app/components/Views/EnterPasswordSimple/__snapshots__/index.test.tsx.snap # app/components/Views/GasEducationCarousel/__snapshots__/index.test.tsx.snap # app/components/Views/ImportPrivateKey/__snapshots__/index.test.tsx.snap # app/components/Views/ImportPrivateKeySuccess/__snapshots__/index.test.tsx.snap # app/components/Views/InfoNetworkModal/__snapshots__/InfoNetworkModal.test.tsx.snap # app/components/Views/MultiRpcModal/__snapshots__/MultiRpcModal.test.tsx.snap # app/components/Views/NavigationUnitTest/__snapshots__/TestScreen1.test.js.snap # app/components/Views/NavigationUnitTest/__snapshots__/TestScreen2.test.js.snap # app/components/Views/NavigationUnitTest/__snapshots__/TestScreen3.test.js.snap # app/components/Views/OfflineMode/__snapshots__/index.test.tsx.snap # app/components/Views/OriginSpamModal/__snapshots__/OriginSpamModal.test.tsx.snap # app/components/Views/PickComponent/__snapshots__/index.test.tsx.snap # app/components/Views/ResetPassword/__snapshots__/index.test.tsx.snap # app/components/Views/Root/__snapshots__/index.test.tsx.snap # app/components/Views/ShowDisplayMediaNFTSheet/__snapshots__/ShowDisplayNFTMediaSheet.test.tsx.snap # app/components/Views/ShowIpfsGatewaySheet/__snapshots__/ShowIpfsGatewaySheet.test.tsx.snap # app/components/Views/ShowTokenIdSheet/__snapshots__/ShowTokenIdSheet.test.tsx.snap # app/components/Views/SimpleWebview/__snapshots__/index.test.tsx.snap # app/components/Views/SuccessErrorSheet/__snapshots__/index.test.tsx.snap # app/components/Views/TransactionsView/__snapshots__/index.test.tsx.snap # app/components/Views/TrendingView/components/ExploreSearchResults/ExploreSearchResults.test.tsx # app/components/Views/TrendingView/components/QuickActions/QuickActions.tsx # app/components/Views/TrendingView/components/SectionHeader/SectionHeader.test.tsx # app/components/Views/TrendingView/components/Sections/SectionTypes/PerpsExploreSection.tsx # app/components/Views/TrendingView/components/Sections/SectionTypes/SectionCard.tsx # app/components/Views/Wallet/__snapshots__/index.test.tsx.snap # app/components/Views/WalletRecovery/__snapshots__/index.test.tsx.snap Co-authored-by: dawnseeker8 <7315988+dawnseeker8@users.noreply.github.com>
Resolved. Merged the latest
Merge commit: |
- Updated `@metamask/bridge-status-controller` to version `^71.1.0` in `package.json` and removed the patch reference. - Updated `@metamask/eth-ledger-bridge-keyring` to version `^12.0.3`. - Updated `@metamask/keyring-sdk` to version `^2.1.1` and `@metamask/keyring-utils` to version `^3.3.1`. - Cleaned up `yarn.lock` by removing outdated references and consolidating dependency versions.
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit ab003dd. Configure here.
…patch reference - Changed the dependency for `@metamask/bridge-status-controller` in `package.json` to a patch reference. - Updated `yarn.lock` to reflect the new patch reference and its dependencies. - Added a new entry for the patch in `yarn.lock` to ensure proper resolution during installs.
|
Tested on Android with Ledger, the swap with 1 and 2 approvals works as expected on Monad network. Screen_Recording_20260511_130512_MetaMask.mp4 |
|
@copilot resolve the merge conflicts in this pull request |
…-issue # Conflicts: # yarn.lock Co-authored-by: dawnseeker8 <7315988+dawnseeker8@users.noreply.github.com>
Resolved. Merged the latest |
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection: Performance Test Selection: |
|




Description
Ledger hardware wallet users on Monad (and other chains / contracts without a matching Ledger plugin) were hitting a misleading "blind signing is not enabled" error when trying to complete gas-sponsored swaps, even though blind signing was enabled on the device.
this PR will resolve the issue #28589 to use new @metamask/eth-ledger-keyring-bridge`
Changelog
CHANGELOG entry: Fixed a misleading "blind signing is not enabled" error preventing Ledger hardware wallet users from completing gas-sponsored swaps on Monad and other chains without a matching Ledger plugin.
Related issues
Fixes: #28589
Manual testing steps
Screenshots/Recordings
Before
After
Pre-merge author checklist
Performance checks (if applicable)
trace()for usage andaddTokenfor an exampleFor performance guidelines and tooling, see the Performance Guide.
Pre-merge reviewer checklist
Note
Medium Risk
Updates the Ledger bridge keyring and its transitive Ledger transport/keyring dependencies, which can impact hardware-wallet signing and swap flows. Risk is moderate because behavior changes come from upstream packages rather than local logic changes.
Overview
Updates
@metamask/eth-ledger-bridge-keyringfrom^12.0.2to^12.0.3(with correspondingyarn.lockrefresh).This pulls in newer transitive Ledger/keyring deps (notably
@ledgerhq/hw-transportand@metamask/keyring-sdk/@metamask/keyring-utils), intended to address Ledger swap/signing issues on chains without matching Ledger plugins (e.g., Monad).Reviewed by Cursor Bugbot for commit 911abd7. Bugbot is set up for automated code reviews on this repo. Configure here.